package link_list;

import java.util.ArrayList;
import java.util.Stack;

/**
 * 反转链表
 * 使用头插法，参考 {@link PrintReserveLinkList}
 */
public class ReserveListNode {
    public static void main(String[] args) {
        ReserveListNode reserveListNode = new ReserveListNode();
        ListNode res = reserveListNode.reserveListNode(ListNode.getDefault());

        while (res != null) {
            System.out.print(res.val);
            res = res.next;
        }
    }

    public ListNode reserveListNode(ListNode listNode) {

        ListNode head = new ListNode(-1);

        while (listNode != null) {
            ListNode memo = listNode.next;
            listNode.next = head.next;
            head.next = listNode;
            listNode = memo;
        }

        return head.next;
    }
}
